/*************************************CopyRight(c)************************************************
**                              电子DIY工作坊
**                               
**************************************************************************************************
**Filename:	
**Version:		
**Author:		
**Date:		
**Description:	
**
**************************************************************************************************
**Version:	
**Modifier:	
**Datemodified:	
**Description:	
**
**************************************************************************************************/
#ifndef LVBU_LOG_H
#define LVBU_LOG_H

#ifdef __cplusplus
extern "C"
{
#endif

	// <<< Use Configuration Wizard in Context Menu >>>\n
#ifdef USE_APP_CONFIG
#include "app_config.h"
#endif
	
/*********************************************************************
 * Include
 */
#include "SEGGER_RTT.h"
/*********************************************************************
 * Macros
 */
	
// <h> Lvbu log Support 

//==========================================================
// <q> LOG_DEBUG_ENABLED  - Config lvbu
#ifndef LOG_DEBUG_ENABLED
#define LOG_DEBUG_ENABLED 1
#endif
// </h> 
//==========================================================


#if LOG_DEBUG_ENABLED
#define LOG_INIT()    SEGGER_RTT_Init()

#define LOG_UNIT(type,color,format,...)            \
        SEGGER_RTT_printf(0," %s%s"format"\r\n%s", \
                          color,                    \
                          type,                     \
                          ##__VA_ARGS__,            \
                          RTT_CTRL_RESET)

/*Clear*/
#define LOG_CLEAR() SEGGER_RTT_WriteString(0, "  "RTT_CTRL_CLEAR)

/* No color log print */
#define LOG(format,...) LOG_UNIT("","",format,##__VA_ARGS__)

/* Color log print */
#define LOGI(format,...) LOG_UNIT("I: ", RTT_CTRL_TEXT_BRIGHT_GREEN , format, ##__VA_ARGS__)
#define LOGW(format,...) LOG_UNIT("W: ", RTT_CTRL_TEXT_BRIGHT_YELLOW, format, ##__VA_ARGS__)
#define LOGE(format,...) LOG_UNIT("E: ", RTT_CTRL_TEXT_BRIGHT_RED   , format, ##__VA_ARGS__)

#else
#define LOG_CLEAR()
#define LOG
#define LOGI
#define LOGW
#define LOGE

#endif
	
/*********************************************************************
 * Constants
 */

/*********************************************************************
 * Typedefs
 */

/*********************************************************************
 * Global Variables
 */

/*********************************************************************
 * Global Functions
 */

/*********************************************************************
 * External Variables
 */

/*********************************************************************
 * External Functions
 */

/*********************************************************************
 * Local Vriables
 */

/*********************************************************************
 * Local Functions
 */

#ifdef __cplusplus
}
#endif

#endif /* LVBU_LOG_H */

